import { BaseEntity } from './baseEntity';

/**
 * 文件信息实体类
 * 继承自基础实体类，包含文件相关的详细信息
 */
export interface FileInfo extends BaseEntity {
  /**
   * 文件名
   */
  fileName?: string;
  
  /**
   * 原始文件名
   */
  originalFileName?: string;

  /**
   * 文件存储路径
   */
  filePath?: string;

  /**
   * 文件大小（字节）
   */
  fileSize?: number;

  /**
   * 文件哈希值（MD5/SHA256）
   */
  fileHash?: string;

  /**
   * 文件类型（MIME）
   */
  contentType?: string;

  /**
   * 存储类型（LOCAL/S3/OSS）
   */
  storageType?: string;
  
  /**
   * 文件访问URL
   */
  fileUrl?: string;
  /**
   * 业务类型
   */
  businessType?: string;

  /**
   * 业务关联ID
   */
  businessId?: string;
  /**
   * 备注
   */
  remark?: string;
}

/**
 * 文件分片参数
 */
export interface UploadChunkParams {
  uploadId: string;
  chunkFile: File;
  chunkIndex: number;
  totalChunks: number;
  fileName: string;
}
/**
 * 合并分片参数
 */
export interface ChunksParams {
  uploadId: string;
  fileName: string;
}